package com.ahui.ydd.common;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.HashMap;
import java.util.Map;

/**
 *  本类为结果的返回值通用类
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class R<T> {

    private Integer errno;  //0表示成功

    private String errmsg;  //返回的提示信息

    private T data;     //返回的数据

    private Map map = new HashMap();//动态数据


    /**
     * 成功后返回该类型的对象
     * @param object
     * @param <T>
     * @return
     */
    public static<T> R<T> success(T object){
        R<T> r =new R<>();
        r.data=object;
        r.errno=0;
        return r;
    }

    /**
     * 失败后返回该类型的对象
     * @param errmsg
     * @param <T>
     * @return
     */
    public static <T> R<T> error(String errmsg){
        R<T> r =new R<>();
        r.errno=1;
        r.errmsg=errmsg;
        return r;
    }


    //非静态不需要绑定泛型,,它本身加载就不会脱离类
    /**
     * 添加数据
     * @param key
     * @param value
     * @return
     */
    public R<T> add(Object key, Object value) {
        this.map.put(key, value);
        return this;
    }
}
